package org.ailuoli.guard.domain.enums;


import lombok.Getter;
import lombok.RequiredArgsConstructor;

/**
 * @author sander
 * @date 2025/02/03
 **/
@Getter
@RequiredArgsConstructor
public enum CommunityTypeEnum {

    /**
     * 异常(未知状态)
     */
    ERROR(-1),

    /**
     * 默认状态
     */
    DEFAULT(0),

    /**
     * 社交媒体社区
     * <p>
     * 这是最常见的互联网社区之一，用户可以通过注册账号、添加好友、关注、评论、分享等方式进行互动交流。典型的社交媒体社区包括微博、微信、QQ空间等‌
     */
    SOCIAL_MEDIA(1),

    /**
     * 专业论坛社区
     * <p>
     * 这类社区通常围绕某一特定行业或领域，聚集了专家、学者和爱好者等人群进行交流和讨论。用户可以在这些平台上提问、回答问题、分享经验和知识。典型的平台有知乎、天涯社区等‌
     */
    PROFESSIONAL_FORUM(2),

    /**
     * 兴趣小组社区
     * <p>
     * 这类社区基于共同的兴趣爱好建立，用户可以分享心得、交流经验、组织活动。典型的平台包括豆瓣、贴吧等‌
     */
    INTEREST_GROUP(3),

    /**
     * 在线社交平台的社区功能
     * <p>
     * 许多在线社交平台如B站、小红书等，都设有自己的社区板块，用户可以在这些板块发布内容、互动交流。这些社区结合平台特点，提供丰富多样的内容和功能‌
     */
    ONLINE_SOCIAL_PLATFORM(4),

    /**
     * 电子公告板（BBS）和讨论组
     * <p>
     * 电子公告板是虚拟网络社区的主要形式，用户通过张贴信息或回复信息进行沟通。讨论组则基于电子邮件，适合对某些话题进行深入交流‌
     */
    ELECTRONIC_BULLETIN_BOARD(5),

    /**
     * 聊天室
     * <p>
     * 在线会员可以通过聊天室实时交流，适合对某些话题有共同兴趣的网友进行深入交流‌
     */
    CHAT_ROOM(6),

    /**
     * 网络寻呼
     * <p>
     * 用户可以通过在线好友即时交流，也可以发送离线留言，甚至通过QQ群进行交流‌
     */
    NETWORK_PAGING(7),

    /**
     * 学习社区
     * <p>
     * 这类社区为用户提供学习和分享知识的平台，用户可以参加在线课程、讨论学习内容，甚至进行项目合作‌
     */
    LEARNING_COMMUNITY(8),

    /**
     * 支持社区
     * <p>
     * 这类社区为用户提供情感支持和建议，尤其是在面对生活挑战时，如育儿、心理健康等‌
     */
    SUPPORT_COMMUNITY(9);

    private final int value;

    public boolean equals(Integer value) {
        return value != null && this.value == value;
    }

    public CommunityTypeEnum of(int value) {
        for (CommunityTypeEnum communityTypeEnum : CommunityTypeEnum.values()) {
            if (communityTypeEnum.value() == value) {
                return communityTypeEnum;
            }
        }
        return ERROR;
    }

    public int value() {
        return value;
    }

}
